<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Inductive logic programming</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Inductive_logic_programming"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Inductive_logic_programming rootpage-Inductive_logic_programming skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Inductive logic programming</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>Inductive logic programming</b> (<b>ILP</b>) is a subfield of <a href="Symbolic_artificial_intelligence" title="Symbolic artificial intelligence">symbolic artificial intelligence</a> which uses <a href="Logic_programming" title="Logic programming">logic programming</a> as a uniform representation for examples, background knowledge and hypotheses. The term "<i>inductive</i>" here refers to <a href="Inductive_reasoning" title="Inductive reasoning">philosophical</a> (i.e. suggesting a theory to explain observed facts) rather than <a href="Mathematical_induction" title="Mathematical induction">mathematical</a> (i.e. proving a property for all members of a well-ordered set) induction. Given an encoding of the known background knowledge and a set of examples represented as a logical <a href="Database" title="Database">database</a> of facts, an ILP system will derive a hypothesised logic program which <a href="Entailment" class="mw-redirect" title="Entailment">entails</a> all the positive and none of the negative examples.
</p>
<ul><li>Schema: <i>positive examples</i> + <i>negative examples</i> + <i>background knowledge</i> ⇒ <i>hypothesis</i>.</li></ul>
<p>Inductive logic programming is particularly useful in <a href="Bioinformatics" title="Bioinformatics">bioinformatics</a> and <a href="Natural_language_processing" title="Natural language processing">natural language processing</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>Building on earlier work on <a href="Inductive_inference" class="mw-redirect" title="Inductive inference">Inductive inference</a>, <a href="Gordon_Plotkin" title="Gordon Plotkin">Gordon Plotkin</a> was the first to formalise induction in a <a href="Horn_clause" title="Horn clause">clausal</a> setting around 1970, adopting an approach of generalising from examples.<sup id="cite_ref-:02_1-0" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> In 1981, <a href="Ehud_Shapiro" title="Ehud Shapiro">Ehud Shapiro</a> introduced several ideas that would shape the field in his new approach of model inference, an algorithm employing refinement and backtracing to search for a complete axiomatisation of given examples.<sup id="cite_ref-:02_1-1" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> His first implementation was the Model Inference System in 1981:<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> a <a href="Prolog" title="Prolog">Prolog</a> program that inductively inferred <a href="Horn_clause" title="Horn clause">Horn clause</a> logic programs from positive and negative examples.<sup id="cite_ref-:02_1-2" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> The term <i>Inductive Logic Programming</i> was first introduced in a paper by <a href="Stephen_Muggleton" title="Stephen Muggleton">Stephen Muggleton</a> in 1990, defined as the intersection of machine learning and logic programming.<sup id="cite_ref-:02_1-3" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Muggleton and Wray Buntine introduced predicate invention and <a href="Inverse_resolution" class="mw-redirect" title="Inverse resolution">inverse resolution</a> in 1988.<sup id="cite_ref-:02_1-4" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Proceedings_of_the_5th_Internationa_6-0" class="reference"><a href="#cite_note-Proceedings_of_the_5th_Internationa-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>Several inductive logic programming systems that proved influential appeared in the early 1990s. <a href="First-order_inductive_learner" title="First-order inductive learner">FOIL</a>, introduced by <a href="Ross_Quinlan" title="Ross Quinlan">Ross Quinlan</a> in 1990<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> was based on upgrading <a href="Propositional_calculus" class="mw-redirect" title="Propositional calculus">propositional</a> learning algorithms AQ and <a href="ID3_algorithm" title="ID3 algorithm">ID3</a>.<sup id="cite_ref-:12_8-0" class="reference"><a href="#cite_note-:12-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="Golem_(ILP)" title="Golem (ILP)">Golem</a>, introduced by Muggleton and Feng in 1990, went back to a restricted form of Plotkin's least generalisation algorithm.<sup id="cite_ref-:12_8-1" class="reference"><a href="#cite_note-:12-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Springer/Ohmsha_9-0" class="reference"><a href="#cite_note-Springer/Ohmsha-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> The <a href="Progol" title="Progol">Progol</a> system, introduced by Muggleton in 1995, first implemented inverse entailment, and inspired many later systems.<sup id="cite_ref-:12_8-2" class="reference"><a href="#cite_note-:12-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:3_10-0" class="reference"><a href="#cite_note-:3-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:2_11-0" class="reference"><a href="#cite_note-:2-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> <a href="Aleph_(ILP)" title="Aleph (ILP)">Aleph</a>, a descendant of Progol introduced by Ashwin Srinivasan in 2001, is still one of the most widely used systems as of 2022.<sup id="cite_ref-:3_10-1" class="reference"><a href="#cite_note-:3-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>At around the same time, the first practical applications emerged, particularly in <a href="Bioinformatics" title="Bioinformatics">bioinformatics</a>, where by 2000 inductive logic programming had been successfully applied to drug design, carcinogenicity and mutagenicity prediction, and elucidation of the structure and function of proteins.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> Unlike the focus on <a href="Automatic_programming" title="Automatic programming">automatic programming</a> inherent in the early work, these fields used inductive logic programming techniques from a viewpoint of <a href="Relational_data_mining" title="Relational data mining">relational data mining</a>. The success of those initial applications and the lack of progress in recovering larger traditional logic programs shaped the focus of the field.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>Recently, classical tasks from automated programming have moved back into focus, as the introduction of meta-interpretative learning makes predicate invention and learning recursive programs more feasible. This technique was pioneered with the Metagol system introduced by Muggleton, Dianhuan Lin, Niels Pahlavi and Alireza Tamaddoni-Nezhad in 2014.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> This allows ILP systems to work with fewer examples, and brought successes in learning string transformation programs, answer set grammars and general algorithms.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Setting">Setting</h2></div>
<p>Inductive logic programming has adopted several different learning settings, the most common of which are learning from <a href="Entailment" class="mw-redirect" title="Entailment">entailment</a> and learning from interpretations.<sup id="cite_ref-setting_16-0" class="reference"><a href="#cite_note-setting-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> In both cases, the input is provided in the form of <i>background knowledge <span class="texhtml mvar" style="font-style:italic;">B</span></i>, a logical theory (commonly in the form of <a href="Clause_(logic)" title="Clause (logic)">clauses</a> used in <a href="Logic_programming" title="Logic programming">logic programming</a>), as well as positive and negative examples, denoted <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{+}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{+}}</annotation>
</semantics>
</math></span><img src="./80124bbf80b76c335176811694ce9871869fbf4c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{+}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{-}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{-}}</annotation>
</semantics>
</math></span><img src="./5f2de04a8716d1450603ddb2760521155c1f2c6e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{-}}" loading="lazy"></span> respectively. The output is given as a <i>hypothesis</i> <i><span class="texhtml mvar" style="font-style:italic;">H</span></i>, itself a logical theory that typically consists of one or more clauses.
</p><p>The two settings differ in the format of examples presented.
</p>
<div class="mw-heading mw-heading3"><h3 id="Learning_from_entailment">Learning from entailment</h3></div>
<p>As of 2022, learning from entailment is by far the most popular setting for inductive logic programming.<sup id="cite_ref-setting_16-1" class="reference"><a href="#cite_note-setting-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> In this setting, the <i>positive</i> and <i>negative</i> examples are given as finite sets <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{+}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{+}}</annotation>
</semantics>
</math></span><img src="./80124bbf80b76c335176811694ce9871869fbf4c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{+}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{-}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{-}}</annotation>
</semantics>
</math></span><img src="./5f2de04a8716d1450603ddb2760521155c1f2c6e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{-}}" loading="lazy"></span> of positive and negated <a href="Ground_expression" title="Ground expression">ground</a> <a href="Literal_(mathematical_logic)" title="Literal (mathematical logic)">literals</a>, respectively. A <i>correct hypothesis</i> <i><span class="texhtml mvar" style="font-style:italic;">H</span></i> is a set of clauses satisfying the following requirements, where the turnstile symbol <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \models }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>⊨<!-- ⊨ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \models }</annotation>
</semantics>
</math></span><img src="./89dbad9a523091069a540122aeb15e41d1fe18b8.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:2.015ex; height:2.843ex;" alt="{\displaystyle \models }" loading="lazy"></span> stands for <a href="Logical_entailment" class="mw-redirect" title="Logical entailment">logical entailment</a>:<sup id="cite_ref-setting_16-2" class="reference"><a href="#cite_note-setting-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
<span class="mwe-math-element mwe-math-element-block"><span class="mwe-math-mathml-display mwe-math-mathml-a11y" style="display: none;"><math display="block" xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{array}{llll}{\text{Completeness:}}&B\cup H&\models &E^{+}\\{\text{Consistency: }}&B\cup H\cup E^{-}&\not \models &{\textit {false}}\end{array}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="left left left left" rowspacing="4pt" columnspacing="1em">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mtext>Completeness:</mtext>
</mrow>
</mtd>
<mtd>
<mi>B</mi>
<mo>∪<!-- ∪ --></mo>
<mi>H</mi>
</mtd>
<mtd>
<mo>⊨<!-- ⊨ --></mo>
</mtd>
<mtd>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mtext>Consistency: </mtext>
</mrow>
</mtd>
<mtd>
<mi>B</mi>
<mo>∪<!-- ∪ --></mo>
<mi>H</mi>
<mo>∪<!-- ∪ --></mo>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mtd>
<mtd>
<mo>⊭</mo>
</mtd>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mtext class="MJX-tex-mathit" mathvariant="italic">false</mtext>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{array}{llll}{\text{Completeness:}}&B\cup H&\models &E^{+}\\{\text{Consistency: }}&B\cup H\cup E^{-}&\not \models &{\textit {false}}\end{array}}}</annotation>
</semantics>
</math></span></span>
Completeness requires any generated hypothesis <i><span class="texhtml mvar" style="font-style:italic;">H</span></i> to explain all positive examples <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{+}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{+}}</annotation>
</semantics>
</math></span><img src="./80124bbf80b76c335176811694ce9871869fbf4c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{+}}" loading="lazy"></span>, and consistency forbids generation of any hypothesis <i><span class="texhtml mvar" style="font-style:italic;">H</span></i> that is inconsistent with the negative examples <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{-}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{-}}</annotation>
</semantics>
</math></span><img src="./5f2de04a8716d1450603ddb2760521155c1f2c6e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{-}}" loading="lazy"></span>, both given the background knowledge <i><span class="texhtml mvar" style="font-style:italic;">B</span></i>.
</p><p>In Muggleton's setting of concept learning,<sup id="cite_ref-setting2_19-0" class="reference"><a href="#cite_note-setting2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> "completeness" is referred to as "sufficiency", and "consistency" as "strong consistency". Two further conditions are added: "<i>Necessity</i>", which postulates that <i><span class="texhtml mvar" style="font-style:italic;">B</span></i> does not entail <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{+}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{+}}</annotation>
</semantics>
</math></span><img src="./80124bbf80b76c335176811694ce9871869fbf4c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{+}}" loading="lazy"></span>, does not impose a restriction on <i><span class="texhtml mvar" style="font-style:italic;">H</span></i>, but forbids any generation of a hypothesis as long as the positive facts are explainable without it. "Weak consistency", which states that no contradiction can be derived from <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle B\land H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>B</mi>
<mo>∧<!-- ∧ --></mo>
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle B\land H}</annotation>
</semantics>
</math></span><img src="./be716b070931a6f86692723ecfe4d9c69d702e27.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.41ex; height:2.176ex;" alt="{\textstyle B\land H}" loading="lazy"></span>, forbids generation of any hypothesis <i><span class="texhtml mvar" style="font-style:italic;">H</span></i> that contradicts the background knowledge <i><span class="texhtml mvar" style="font-style:italic;">B</span></i>. Weak consistency is implied by strong consistency; if no negative examples are given, both requirements coincide. Weak consistency is particularly important in the case of noisy data, where completeness and strong consistency cannot be guaranteed.<sup id="cite_ref-setting2_19-1" class="reference"><a href="#cite_note-setting2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Learning_from_interpretations">Learning from interpretations</h3></div>
<p>In learning from interpretations, the <i>positive</i> and <i>negative</i> examples are given as a set of complete or partial <a href="Herbrand_structure" title="Herbrand structure">Herbrand structures</a>, each of which are themselves a finite set of ground literals. Such a structure <i><span class="texhtml mvar" style="font-style:italic;">e</span></i> is said to be a model of the set of clauses <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle B\cup H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>B</mi>
<mo>∪<!-- ∪ --></mo>
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle B\cup H}</annotation>
</semantics>
</math></span><img src="./10e9d40eb468da8360644a107701572fda8bb182.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.41ex; height:2.176ex;" alt="{\textstyle B\cup H}" loading="lazy"></span> if for any <a href="Substitution_(logic)" title="Substitution (logic)">substitution</a> <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle \theta }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>θ<!-- θ --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle \theta }</annotation>
</semantics>
</math></span><img src="./a11744bd71a5eb6efe4f28e12ca57f874d82658c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.09ex; height:2.176ex;" alt="{\textstyle \theta }" loading="lazy"></span> and any clause <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle \mathrm {head} \leftarrow \mathrm {body} }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">h</mi>
<mi mathvariant="normal">e</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">d</mi>
</mrow>
<mo stretchy="false">←<!-- ← --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">b</mi>
<mi mathvariant="normal">o</mi>
<mi mathvariant="normal">d</mi>
<mi mathvariant="normal">y</mi>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle \mathrm {head} \leftarrow \mathrm {body} }</annotation>
</semantics>
</math></span><img src="./959886e24f1a89c16469089509e0b3d145186faa.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:13.369ex; height:2.509ex;" alt="{\textstyle \mathrm {head} \leftarrow \mathrm {body} }" loading="lazy"></span> in <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle B\cup H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>B</mi>
<mo>∪<!-- ∪ --></mo>
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle B\cup H}</annotation>
</semantics>
</math></span><img src="./10e9d40eb468da8360644a107701572fda8bb182.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.41ex; height:2.176ex;" alt="{\textstyle B\cup H}" loading="lazy"></span> such that <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle \mathrm {body} \theta \subseteq e}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">b</mi>
<mi mathvariant="normal">o</mi>
<mi mathvariant="normal">d</mi>
<mi mathvariant="normal">y</mi>
</mrow>
<mi>θ<!-- θ --></mi>
<mo>⊆<!-- ⊆ --></mo>
<mi>e</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle \mathrm {body} \theta \subseteq e}</annotation>
</semantics>
</math></span><img src="./d82b7e033d9f9c62cf7d479459c910c42737444f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:10.247ex; height:2.509ex;" alt="{\textstyle \mathrm {body} \theta \subseteq e}" loading="lazy"></span>, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \mathrm {head} \theta \subseteq e}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">h</mi>
<mi mathvariant="normal">e</mi>
<mi mathvariant="normal">a</mi>
<mi mathvariant="normal">d</mi>
</mrow>
<mi>θ<!-- θ --></mi>
<mo>⊆<!-- ⊆ --></mo>
<mi>e</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \mathrm {head} \theta \subseteq e}</annotation>
</semantics>
</math></span><img src="./6d44c74712d222d1221f05b5314d15d53ae74fd4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:10.052ex; height:2.343ex;" alt="{\displaystyle \mathrm {head} \theta \subseteq e}" loading="lazy"></span> also holds. The goal is then to output a hypothesis that is <i>complete,</i> meaning every positive example is a model of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle B\cup H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>B</mi>
<mo>∪<!-- ∪ --></mo>
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle B\cup H}</annotation>
</semantics>
</math></span><img src="./10e9d40eb468da8360644a107701572fda8bb182.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.41ex; height:2.176ex;" alt="{\textstyle B\cup H}" loading="lazy"></span>, and <i>consistent,</i> meaning that no negative example is a model of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle B\cup H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>B</mi>
<mo>∪<!-- ∪ --></mo>
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle B\cup H}</annotation>
</semantics>
</math></span><img src="./10e9d40eb468da8360644a107701572fda8bb182.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.41ex; height:2.176ex;" alt="{\textstyle B\cup H}" loading="lazy"></span>.<sup id="cite_ref-setting_16-3" class="reference"><a href="#cite_note-setting-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Approaches_to_ILP">Approaches to ILP</h2></div>
<p>An <i>inductive logic programming system</i> is a program that takes as an input logic theories <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B,E^{+},E^{-}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
<mo>,</mo>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
<mo>,</mo>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B,E^{+},E^{-}}</annotation>
</semantics>
</math></span><img src="./1df5a807aae71d080dd1a00418823bc1858a3b93.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:10.441ex; height:2.843ex;" alt="{\displaystyle B,E^{+},E^{-}}" loading="lazy"></span> and outputs a correct hypothesis <span class="texhtml mvar" style="font-style:italic;">H</span> with respect to theories <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B,E^{+},E^{-}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
<mo>,</mo>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
<mo>,</mo>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B,E^{+},E^{-}}</annotation>
</semantics>
</math></span><img src="./1df5a807aae71d080dd1a00418823bc1858a3b93.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:10.441ex; height:2.843ex;" alt="{\displaystyle B,E^{+},E^{-}}" loading="lazy"></span>. A system is <i>complete</i> if and only if for any input logic theories <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B,E^{+},E^{-}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
<mo>,</mo>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
<mo>,</mo>
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B,E^{+},E^{-}}</annotation>
</semantics>
</math></span><img src="./1df5a807aae71d080dd1a00418823bc1858a3b93.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:10.441ex; height:2.843ex;" alt="{\displaystyle B,E^{+},E^{-}}" loading="lazy"></span> any correct hypothesis <span class="texhtml mvar" style="font-style:italic;">H</span> with respect to these input theories can be found with its hypothesis search procedure. Inductive logic programming systems can be roughly divided into two classes, search-based and meta-interpretative systems.
</p><p>Search-based systems exploit that the space of possible clauses forms a <a href="Complete_lattice" title="Complete lattice">complete lattice</a> under the <a href="Theta-subsumption" title="Theta-subsumption">subsumption</a> relation, where one clause <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> subsumes another clause <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span> if there is a <a href="Substitution_(logic)" title="Substitution (logic)">substitution</a> <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle \theta }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>θ<!-- θ --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle \theta }</annotation>
</semantics>
</math></span><img src="./a11744bd71a5eb6efe4f28e12ca57f874d82658c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.09ex; height:2.176ex;" alt="{\textstyle \theta }" loading="lazy"></span> such that <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}\theta }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mi>θ<!-- θ --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}\theta }</annotation>
</semantics>
</math></span><img src="./07ecd729cf7ef736a83e90fce791389a004f8acb.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.807ex; height:2.509ex;" alt="{\textstyle C_{1}\theta }" loading="lazy"></span>, the result of applying <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle \theta }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>θ<!-- θ --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle \theta }</annotation>
</semantics>
</math></span><img src="./a11744bd71a5eb6efe4f28e12ca57f874d82658c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.09ex; height:2.176ex;" alt="{\textstyle \theta }" loading="lazy"></span> to <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span>, is a subset of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span>. This lattice can be traversed either bottom-up or top-down.
</p>
<div class="mw-heading mw-heading3"><h3 id="Bottom-up_search">Bottom-up search</h3></div>
<p>Bottom-up methods to search the subsumption lattice have been investigated since Plotkin's first work on formalising induction in clausal logic in 1970.<sup id="cite_ref-:02_1-5" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> Techniques used include least general generalisation, based on <a href="Anti-unification_(computer_science)" class="mw-redirect" title="Anti-unification (computer science)">anti-unification</a>, and inverse resolution, based on inverting the <a href="Resolution_(logic)" title="Resolution (logic)">resolution</a> inference rule.
</p>
<div class="mw-heading mw-heading4"><h4 id="Least_general_generalisation">Least general generalisation</h4></div>
<p>A <i>least general generalisation algorithm</i> takes as input two clauses <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span> and outputs the least general generalisation of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span>, that is, a clause <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>C</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C}</annotation>
</semantics>
</math></span><img src="./6dca76d9ff4b48256b6a4a99bcb234b64b2fa72b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.766ex; height:2.176ex;" alt="{\textstyle C}" loading="lazy"></span> that subsumes <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span>, and that is subsumed by every other clause that subsumes <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span>. The least general generalisation can be computed by first computing all <i>selections</i> from <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>C</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C}</annotation>
</semantics>
</math></span><img src="./6dca76d9ff4b48256b6a4a99bcb234b64b2fa72b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.766ex; height:2.176ex;" alt="{\textstyle C}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle D}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>D</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle D}</annotation>
</semantics>
</math></span><img src="./4e5200f518cb5afe304ec42ffdd4f6c63c702f77.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.924ex; height:2.176ex;" alt="{\textstyle D}" loading="lazy"></span>, which are pairs of literals <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle (L,M)\in (C_{1},C_{2})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">(</mo>
<mi>L</mi>
<mo>,</mo>
<mi>M</mi>
<mo stretchy="false">)</mo>
<mo>∈<!-- ∈ --></mo>
<mo stretchy="false">(</mo>
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>,</mo>
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle (L,M)\in (C_{1},C_{2})}</annotation>
</semantics>
</math></span><img src="./64dda10f71a5dd2273d8342ec3abae301c33f018.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:17.984ex; height:2.843ex;" alt="{\displaystyle (L,M)\in (C_{1},C_{2})}" loading="lazy"></span> sharing the same predicate symbol and negated/unnegated status. Then, the least general generalisation is obtained as the disjunction of the least general generalisations of the individual selections, which can be obtained by <a href="First-order_syntactical_anti-unification" class="mw-redirect" title="First-order syntactical anti-unification">first-order syntactical anti-unification</a>.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p><p>To account for background knowledge, inductive logic programming systems employ <i>relative least general generalisations</i>, which are defined in terms of subsumption relative to a background theory. In general, such relative least general generalisations are not guaranteed to exist; however, if the background theory <i><span class="texhtml mvar" style="font-style:italic;">B</span></i> is a finite set of <a href="Ground_expression" title="Ground expression">ground</a> <a href="Literal_(mathematical_logic)" title="Literal (mathematical logic)">literals</a>, then the negation of <i><span class="texhtml mvar" style="font-style:italic;">B</span></i> is itself a clause. In this case, a relative least general generalisation can be computed by disjoining the negation of <i><span class="texhtml mvar" style="font-style:italic;">B</span></i> with both <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span> and then computing their least general generalisation as before.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p><p>Relative least general generalisations are the foundation of the bottom-up system <a href="Golem_(ILP)" title="Golem (ILP)">Golem</a>.<sup id="cite_ref-:12_8-3" class="reference"><a href="#cite_note-:12-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Springer/Ohmsha_9-1" class="reference"><a href="#cite_note-Springer/Ohmsha-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Inverse_resolution">Inverse resolution</h4></div>
<p>Inverse resolution is an <a href="Inductive_reasoning" title="Inductive reasoning">inductive reasoning</a> technique that involves <a href="https://en.wiktionary.org/wiki/invert" class="extiw external" title="wiktionary:invert">inverting</a> the <a href="Resolution_(logic)" title="Resolution (logic)">resolution operator</a>.
</p><p>Inverse resolution takes information about the <a href="Resolvent_(logic)" class="mw-redirect" title="Resolvent (logic)">resolvent</a> of a resolution step to compute possible resolving clauses. Two types of inverse resolution operator are in use in inductive logic programming: V-operators and W-operators. A V-operator takes clauses <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle R}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>R</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle R}</annotation>
</semantics>
</math></span><img src="./197e66194eb64577670e2a100026bff6fb15d236.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.764ex; height:2.176ex;" alt="{\textstyle R}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span>as input and returns a clause <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span> such that <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle R}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>R</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle R}</annotation>
</semantics>
</math></span><img src="./197e66194eb64577670e2a100026bff6fb15d236.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.764ex; height:2.176ex;" alt="{\textstyle R}" loading="lazy"></span> is the resolvent of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span>. A W-operator takes two clauses <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle R_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>R</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle R_{1}}</annotation>
</semantics>
</math></span><img src="./c115730d178ae9c5ffe2747f97a29c73698f9d4b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.818ex; height:2.509ex;" alt="{\textstyle R_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle R_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>R</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle R_{2}}</annotation>
</semantics>
</math></span><img src="./eeb9f9b1a756c21ec0dd01be6df73c2fe1776753.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.818ex; height:2.509ex;" alt="{\textstyle R_{2}}" loading="lazy"></span> and returns three clauses <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span>, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{3}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{3}}</annotation>
</semantics>
</math></span><img src="./c569c5cbf0f21d2eb5d5bede70f56db75f4949bb.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{3}}" loading="lazy"></span> such that <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle R_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>R</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle R_{1}}</annotation>
</semantics>
</math></span><img src="./c115730d178ae9c5ffe2747f97a29c73698f9d4b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.818ex; height:2.509ex;" alt="{\textstyle R_{1}}" loading="lazy"></span> is the resolvent of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{1}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{1}}</annotation>
</semantics>
</math></span><img src="./677a99cc6a1ac23ff88fc13fa384646a09857d76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{1}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle R_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>R</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle R_{2}}</annotation>
</semantics>
</math></span><img src="./eeb9f9b1a756c21ec0dd01be6df73c2fe1776753.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.818ex; height:2.509ex;" alt="{\textstyle R_{2}}" loading="lazy"></span> is the resolvent of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{2}}</annotation>
</semantics>
</math></span><img src="./c2dc7c3155640d6e3d86593fc6b62048a4b61a45.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{2}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle C_{3}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msub>
<mi>C</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>3</mn>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle C_{3}}</annotation>
</semantics>
</math></span><img src="./c569c5cbf0f21d2eb5d5bede70f56db75f4949bb.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.716ex; height:2.509ex;" alt="{\textstyle C_{3}}" loading="lazy"></span>.<sup id="cite_ref-invres_23-0" class="reference"><a href="#cite_note-invres-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p><p>Inverse resolution was first introduced by <a href="Stephen_Muggleton" title="Stephen Muggleton">Stephen Muggleton</a> and Wray Buntine in 1988 for use in the inductive logic programming system Cigol.<sup id="cite_ref-Proceedings_of_the_5th_Internationa_6-1" class="reference"><a href="#cite_note-Proceedings_of_the_5th_Internationa-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> By 1993, this spawned a surge of research into inverse resolution operators and their properties.<sup id="cite_ref-invres_23-1" class="reference"><a href="#cite_note-invres-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Top-down_search">Top-down search</h3></div>
<p>The ILP systems Progol,<sup id="cite_ref-:2_11-1" class="reference"><a href="#cite_note-:2-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Hail <sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> and Imparo <sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> find a hypothesis <span class="texhtml mvar" style="font-style:italic;">H</span> using the principle of the <b>inverse entailment</b><sup id="cite_ref-:2_11-2" class="reference"><a href="#cite_note-:2-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> for theories <span class="texhtml mvar" style="font-style:italic;">B</span>, <span class="texhtml mvar" style="font-style:italic;">E</span>, <span class="texhtml mvar" style="font-style:italic;">H</span>: <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B\land H\models E\iff B\land \neg E\models \neg H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
<mo>∧<!-- ∧ --></mo>
<mi>H</mi>
<mo>⊨<!-- ⊨ --></mo>
<mi>E</mi>
<mspace width="thickmathspace"></mspace>
<mo stretchy="false">⟺<!-- ⟺ --></mo>
<mspace width="thickmathspace"></mspace>
<mi>B</mi>
<mo>∧<!-- ∧ --></mo>
<mi mathvariant="normal">¬<!-- ¬ --></mi>
<mi>E</mi>
<mo>⊨<!-- ⊨ --></mo>
<mi mathvariant="normal">¬<!-- ¬ --></mi>
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B\land H\models E\iff B\land \neg E\models \neg H}</annotation>
</semantics>
</math></span><img src="./e2d8fc90c4a014390b9a10c71890eb00b38e00fe.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:32.98ex; height:2.843ex;" alt="{\displaystyle B\land H\models E\iff B\land \neg E\models \neg H}" loading="lazy"></span>. First they construct an intermediate theory <span class="texhtml mvar" style="font-style:italic;">F</span> called a bridge theory satisfying the conditions <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle B\land \neg E\models F}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>B</mi>
<mo>∧<!-- ∧ --></mo>
<mi mathvariant="normal">¬<!-- ¬ --></mi>
<mi>E</mi>
<mo>⊨<!-- ⊨ --></mo>
<mi>F</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle B\land \neg E\models F}</annotation>
</semantics>
</math></span><img src="./d46ce07c3f1d4f2b3e2c086f6b94a1fc2692c9dd.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:12.718ex; height:2.843ex;" alt="{\displaystyle B\land \neg E\models F}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle F\models \neg H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>F</mi>
<mo>⊨<!-- ⊨ --></mo>
<mi mathvariant="normal">¬<!-- ¬ --></mi>
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle F\models \neg H}</annotation>
</semantics>
</math></span><img src="./f9e70df65de3d1a89a688393d452aaf3e130762d.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.66ex; height:2.843ex;" alt="{\displaystyle F\models \neg H}" loading="lazy"></span>. Then as <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle H\models \neg F}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>H</mi>
<mo>⊨<!-- ⊨ --></mo>
<mi mathvariant="normal">¬<!-- ¬ --></mi>
<mi>F</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle H\models \neg F}</annotation>
</semantics>
</math></span><img src="./6e51b63437d525fc3b6caf34693fc180b0803ab5.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.66ex; height:2.843ex;" alt="{\displaystyle H\models \neg F}" loading="lazy"></span>, they generalize the negation of the bridge theory <span class="texhtml mvar" style="font-style:italic;">F</span> with anti-entailment.<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> However, the operation of anti-entailment is computationally more expensive since it is highly nondeterministic. Therefore, an alternative hypothesis search can be conducted using the inverse subsumption (anti-subsumption) operation instead, which is less non-deterministic than anti-entailment.
</p><p>Questions of completeness of a hypothesis search procedure of specific inductive logic programming system arise. For example, the Progol hypothesis search procedure based on the inverse entailment inference rule is not complete by <i>Yamamoto's example</i>.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> On the other hand, Imparo is complete by both anti-entailment procedure <sup id="cite_ref-kimber2009induction_28-0" class="reference"><a href="#cite_note-kimber2009induction-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> and its extended inverse subsumption <sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> procedure.
</p>
<div class="mw-heading mw-heading3"><h3 id="Metainterpretive_learning">Metainterpretive learning</h3></div>
<p>Rather than explicitly searching the hypothesis graph, metainterpretive or <i>meta-level</i> systems encode the inductive logic programming program as a meta-level logic program which is then solved to obtain an optimal hypothesis. Formalisms used to express the problem specification include <a href="Prolog" title="Prolog">Prolog</a> and <a href="Answer_set_programming" title="Answer set programming">answer set programming</a>, with existing Prolog systems and answer set solvers used for solving the constraints.<sup id="cite_ref-:0_30-0" class="reference"><a href="#cite_note-:0-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup>
</p><p>And example of a Prolog-based system is Metagol, which is based on a <a href="Meta-interpreters_in_Prolog" class="mw-redirect" title="Meta-interpreters in Prolog">meta-interpreter in Prolog</a>, while ASPAL and ILASP are based on an encoding of the inductive logic programming problem in answer set programming.<sup id="cite_ref-:0_30-1" class="reference"><a href="#cite_note-:0-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Evolutionary_learning">Evolutionary learning</h3></div>
<p><a href="Evolutionary_algorithm" title="Evolutionary algorithm">Evolutionary algorithms</a> in ILP use a population-based approach to evolve hypotheses, refining them through selection, crossover, and mutation. Methods like EvoLearner have been shown to outperform traditional approaches on structured machine learning benchmarks. <sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="List_of_implementations">List of implementations</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.cs.bris.ac.uk/Research/MachineLearning/1BC/">1BC and 1BC2: first-order naive Bayesian classifiers:</a></li>
<li><a rel="nofollow" class="external text" href="http://dtai.cs.kuleuven.be/ACE/">ACE (A Combined Engine)</a></li>
<li><a rel="nofollow" class="external text" href="http://web.comlab.ox.ac.uk/oucl/research/areas/machlearn/Aleph/">Aleph</a></li>
<li><a rel="nofollow" class="external text" href="http://www.ahlgren.info/research/atom/">Atom</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140326152728/http://www.ahlgren.info/research/atom">Archived</a> 2014-03-26 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li>
<li><a rel="nofollow" class="external text" href="https://archive.today/20121231073113/http://dtai.cs.kuleuven.be/claudien/">Claudien</a></li>
<li><a rel="nofollow" class="external text" href="http://dl-learner.org">DL-Learner</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190815184411/http://dl-learner.org/">Archived</a> 2019-08-15 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li>
<li><a rel="nofollow" class="external text" href="http://dtai.cs.kuleuven.be/dmax/">DMax</a></li>
<li><a rel="nofollow" class="external text" href="https://spike-imperial.github.io/FastLAS/">FastLAS (Fast Learning from Answer Sets)</a></li>
<li><a href="First_Order_Inductive_Learner" class="mw-redirect" title="First Order Inductive Learner">FOIL (First Order Inductive Learner)</a></li>
<li><a href="Golem_(ILP)" title="Golem (ILP)">Golem</a></li>
<li><a rel="nofollow" class="external text" href="http://www.ilasp.com/">ILASP (Inductive Learning of Answer Set Programs)</a></li>
<li>Imparo<sup id="cite_ref-kimber2009induction_28-1" class="reference"><a href="#cite_note-kimber2009induction-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup></li>
<li><a rel="nofollow" class="external text" href="http://lacam.di.uniba.it:8000/systems/inthelex/">Inthelex (INcremental THEory Learner from EXamples)</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111128110512/http://lacam.di.uniba.it:8000/systems/inthelex/">Archived</a> 2011-11-28 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20020516195248/http://cs.anu.edu.au/people/Eric.McCreath/lime.html">Lime</a></li>
<li><a rel="nofollow" class="external text" href="https://github.com/metagol/metagol">Metagol</a></li>
<li><a rel="nofollow" class="external text" href="https://archive.today/20130219215544/http://libra.msra.cn/Publication/3392493/mio-user-s-manual">Mio</a></li>
<li>MIS (Model Inference System) by Ehud Shapiro</li>
<li><a rel="nofollow" class="external text" href="https://github.com/dice-group/Ontolearn">Ontolearn</a></li>
<li><a rel="nofollow" class="external text" href="https://github.com/logic-and-learning-lab/Popper">Popper</a></li>
<li><a href="PROGOL" class="mw-redirect" title="PROGOL">PROGOL</a></li>
<li><a rel="nofollow" class="external text" href="http://ida.felk.cvut.cz/zelezny/rsd/index.htm">RSD</a></li>
<li>Warmr (now included in ACE)</li>
<li><a rel="nofollow" class="external text" href="http://ilp.doc.ic.ac.uk/ProGolem/">ProGolem</a> <sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Probabilistic_inductive_logic_programming">Probabilistic inductive logic programming</h2></div>
<p>Probabilistic inductive logic programming adapts the setting of inductive logic programming to learning <a href="Probabilistic_logic_programming" title="Probabilistic logic programming">probabilistic logic programs</a>. It can be considered as a form of <a href="Statistical_relational_learning" title="Statistical relational learning">statistical relational learning</a> within the formalism of probabilistic logic programming.<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-pilp_35-0" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p><p>Given
</p>
<ol><li>background knowledge as a probabilistic logic program <span class="texhtml mvar" style="font-style:italic;">B</span>, and</li>
<li>a set of positive and negative examples <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{+}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>+</mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{+}}</annotation>
</semantics>
</math></span><img src="./80124bbf80b76c335176811694ce9871869fbf4c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{+}}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle E^{-}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<msup>
<mi>E</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle E^{-}}</annotation>
</semantics>
</math></span><img src="./5f2de04a8716d1450603ddb2760521155c1f2c6e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.305ex; height:2.343ex;" alt="{\textstyle E^{-}}" loading="lazy"></span></li></ol>
<p>the goal of probabilistic inductive logic programming is to find a probabilistic logic program <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle H}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mi>H</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle H}</annotation>
</semantics>
</math></span><img src="./2435ce1b360a5f6f5a0ab5acbb3c672bf229dac7.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.064ex; height:2.176ex;" alt="{\textstyle H}" loading="lazy"></span> such that the probability of positive examples according to <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\textstyle {H\cup B}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mi>H</mi>
<mo>∪<!-- ∪ --></mo>
<mi>B</mi>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\textstyle {H\cup B}}</annotation>
</semantics>
</math></span><img src="./d714a9dbb34847cf0e1fecf816b651a96c899938.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.41ex; height:2.176ex;" alt="{\textstyle {H\cup B}}" loading="lazy"></span> is maximized and the probability of negative examples is minimized.<sup id="cite_ref-pilp_35-1" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p><p>This problem has two variants: parameter learning and structure learning. In the former, one is given the structure (the clauses) of <span class="texhtml mvar" style="font-style:italic;">H</span> and the goal is to infer the probabilities annotations of the given clauses, while in the latter the goal is to infer both the structure and the probability parameters of <span class="texhtml mvar" style="font-style:italic;">H</span>. Just as in classical inductive logic programming, the examples can be given as examples or as (partial) interpretations.<sup id="cite_ref-pilp_35-2" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Parameter_Learning">Parameter Learning</h3></div>
<p>Parameter learning for languages following the distribution semantics has been performed by using an <a href="Expectation-maximisation_algorithm" class="mw-redirect" title="Expectation-maximisation algorithm">expectation-maximisation algorithm</a> or by <a href="Gradient_descent" title="Gradient descent">gradient descent</a>.
An expectation-maximisation algorithm consists of a cycle in which the steps of expectation and maximization are repeatedly performed. In the expectation step, the distribution of the hidden variables is computed according to the current values of the probability parameters, while in the maximisation step, the new values of the parameters are computed.
Gradient descent methods compute the gradient of the target function and iteratively modify the parameters moving in the direction of the gradient.<sup id="cite_ref-pilp_35-3" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Structure_Learning">Structure Learning</h3></div>
<p>Structure learning was pioneered by <a href="Daphne_Koller" title="Daphne Koller">Daphne Koller</a> and Avi Pfeffer in 1997,<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> where the authors learn the structure of <a href="First-order_logic" title="First-order logic">first-order</a> rules with associated probabilistic uncertainty parameters. Their approach involves generating the underlying <a href="Graphical_model" title="Graphical model">graphical model</a> in a preliminary step and then applying expectation-maximisation.<sup id="cite_ref-pilp_35-4" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p><p>In 2008, De Raedt et al. presented an algorithm for performing theory compression on <a href="ProbLog" title="ProbLog">ProbLog</a> programs, where theory compression refers to a process of removing as many clauses as possible from the theory in order to maximize the probability of a given set of positive and negative examples. No new clause can be added to the theory.<sup id="cite_ref-pilp_35-5" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup>
</p><p>In the same year, Meert, W. et al. introduced a method for learning parameters and structure of <a href="Ground_term" class="mw-redirect" title="Ground term">ground</a> probabilistic logic programs by considering the <a href="Bayesian_network" title="Bayesian network">Bayesian networks</a> equivalent to them and applying techniques for learning Bayesian networks.<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-pilp_35-6" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p><p>ProbFOIL, introduced by De Raedt and Ingo Thon in 2010, combined the inductive logic programming system <a href="First-order_inductive_learner" title="First-order inductive learner">FOIL</a> with <a href="ProbLog" title="ProbLog">ProbLog</a>. Logical rules are learned from probabilistic data in the sense that both the examples themselves and their classifications can be probabilistic. The set of rules has to allow one to predict the probability of the examples from their description. In this setting, the parameters (the probability values) are fixed and the structure has to be learned.<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-pilp_35-7" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p><p>In 2011, Elena Bellodi and Fabrizio Riguzzi introduced SLIPCASE, which performs a beam search among probabilistic logic programs by iteratively refining probabilistic theories and optimizing the parameters of each theory using expectation-maximisation.<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup>
Its extension SLIPCOVER, proposed in 2014, uses bottom clauses generated as in <a href="Progol" title="Progol">Progol</a> to guide the refinement process, thus reducing the number of revisions and exploring the search space more effectively. Moreover, SLIPCOVER separates the search for promising clauses from that of the theory: the space of clauses is explored with a <a href="Beam_search" title="Beam search">beam search</a>, while the space of theories is searched <a href="Greedy_search" class="mw-redirect" title="Greedy search">greedily</a>.<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-pilp_35-8" class="reference"><a href="#cite_note-pilp-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Commonsense_reasoning" title="Commonsense reasoning">Commonsense reasoning</a></li>
<li><a href="Formal_concept_analysis" title="Formal concept analysis">Formal concept analysis</a></li>
<li><a href="Inductive_reasoning" title="Inductive reasoning">Inductive reasoning</a></li>
<li><a href="Inductive_programming" title="Inductive programming">Inductive programming</a></li>
<li><a href="Inductive_probability" title="Inductive probability">Inductive probability</a></li>
<li><a href="Statistical_relational_learning" title="Statistical relational learning">Statistical relational learning</a></li>
<li><a href="Version_space_learning" title="Version space learning">Version space learning</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-:02-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-:02_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:02_1-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:02_1-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:02_1-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:02_1-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-:02_1-5"><sup><i><b>f</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFNienhuys-ChengWolf1997" class="citation book cs1">Nienhuys-Cheng, Shan-hwei; Wolf, Ronald de (1997). <i>Foundations of inductive logic programming</i>. Lecture notes in computer science Lecture notes in artificial intelligence. Berlin Heidelberg: Springer. pp. <span class="nowrap">174–</span>177. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-62927-6</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFPlotkin1970" class="citation thesis cs1">Plotkin, G.D. (1970). <a rel="nofollow" class="external text" href="https://www.era.lib.ed.ac.uk/bitstream/handle/1842/6656/Plotkin1972.pdf"><i>Automatic Methods of Inductive Inference</i></a> <span class="cs1-format">(PDF)</span> (PhD). University of Edinburgh. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/1842%2F6656">1842/6656</a>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFShapiro1981" class="citation techreport cs1">Shapiro, Ehud Y. (1981). <a rel="nofollow" class="external text" href="http://ftp.cs.yale.edu/publications/techreports/tr192.pdf"><i>Inductive inference of theories from facts</i></a> <span class="cs1-format">(PDF)</span> (Technical report). Department of Computer Science, Yale University. 192.</cite> Reprinted in <cite id="CITEREFLassezPlotkin1991" class="citation book cs1">Lassez, J.-L.; Plotkin, G., eds. (1991). <i>Computational logic : essays in honor of Alan Robinson</i>. MIT Press. pp. <span class="nowrap">199–</span>254. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-262-12156-9</bdi>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFShapiro1981" class="citation book cs1">Shapiro, Ehud Y. (1981). <a rel="nofollow" class="external text" href="https://www.ijcai.org/Proceedings/81-2/Papers/100.pdf">"The model inference system"</a> <span class="cs1-format">(PDF)</span>. <i>Proceedings of the 7th international joint conference on Artificial intelligence</i>. Vol. 2. Morgan Kaufmann. p. 1064.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFShapiro1983" class="citation book cs1">Shapiro, Ehud Y. (1983). <i>Algorithmic program debugging</i>. MIT Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-262-19218-7</bdi>.</cite></span>
</li>
<li id="cite_note-Proceedings_of_the_5th_Internationa-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-Proceedings_of_the_5th_Internationa_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Proceedings_of_the_5th_Internationa_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMuggletonBuntine1988" class="citation book cs1">Muggleton, S.H.; Buntine, W. (1988). "Machine invention of first-order predicate by inverting resolution". <i>Proceedings of the 5th International Conference on Machine Learning</i>. pp. <span class="nowrap">339–</span>352. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2FB978-0-934613-64-4.50040-2">10.1016/B978-0-934613-64-4.50040-2</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-934613-64-4</bdi>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFQuinlan1990" class="citation journal cs1">Quinlan, J. R. (August 1990). <a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fbf00117105">"Learning logical definitions from relations"</a>. <i>Machine Learning</i>. <b>5</b> (3): <span class="nowrap">239–</span>266. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fbf00117105">10.1007/bf00117105</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0885-6125">0885-6125</a>.</cite></span>
</li>
<li id="cite_note-:12-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-:12_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:12_8-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:12_8-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:12_8-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFNienhuys-ChengWolf1997" class="citation book cs1">Nienhuys-Cheng, Shan-hwei; Wolf, Ronald de (1997). <i>Foundations of inductive logic programming</i>. Lecture notes in computer science Lecture notes in artificial intelligence. Berlin Heidelberg: Springer. pp. <span class="nowrap">354–</span>358. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-62927-6</bdi>.</cite></span>
</li>
<li id="cite_note-Springer/Ohmsha-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-Springer/Ohmsha_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Springer/Ohmsha_9-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMuggletonFeng1990" class="citation journal cs1">Muggleton, Stephen H.; Feng, Cao (1990). Arikawa, Setsuo; Goto, Shigeki; Ohsuga, Setsuo; Yokomori, Takashi (eds.). <a rel="nofollow" class="external text" href="https://dblp.org/rec/conf/alt/MuggletonF90.bib">"Efficient Induction of Logic Programs"</a>. <i>Algorithmic Learning Theory, First International Workshop, ALT '90, Tokyo, Japan, October 8–10, 1990, Proceedings</i>. Springer/Ohmsha: <span class="nowrap">368–</span>381.</cite></span>
</li>
<li id="cite_note-:3-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-:3_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:3_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFCropperDumančić2022" class="citation journal cs1">Cropper, Andrew; Dumančić, Sebastijan (2022-06-15). <a rel="nofollow" class="external text" href="https://doi.org/10.1613%2Fjair.1.13507">"Inductive Logic Programming At 30: A New Introduction"</a>. <i>Journal of Artificial Intelligence Research</i>. <b>74</b>: 808. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/2008.07912">2008.07912</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1613%2Fjair.1.13507">10.1613/jair.1.13507</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1076-9757">1076-9757</a>.</cite></span>
</li>
<li id="cite_note-:2-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-:2_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:2_11-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:2_11-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMuggleton1995" class="citation journal cs1">Muggleton, S.H. (1995). "Inverting entailment and Progol". <i>New Generation Computing</i>. <b>13</b> (<span class="nowrap">3–</span>4): <span class="nowrap">245–</span>286. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.31.1630">10.1.1.31.1630</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fbf03037227">10.1007/bf03037227</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:12643399">12643399</a>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFDžeroski2001" class="citation cs2">Džeroski, Sašo (2001), Džeroski, Sašo; <a href="Nada_Lavra%C4%8D" title="Nada Lavrač">Lavrač, Nada</a> (eds.), <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="http://link.springer.com/10.1007/978-3-662-04599-2_14">"Relational Data Mining Applications: An Overview"</a></span>, <i>Relational Data Mining</i>, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. <span class="nowrap">339–</span>364, <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-662-04599-2_14">10.1007/978-3-662-04599-2_14</a>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-642-07604-6</bdi><span class="reference-accessdate">, retrieved <span class="nowrap">2023-11-27</span></span></cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFDe_Raedt2008" class="citation cs2">De Raedt, Luc (2008), <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.1007/978-3-540-68856-3"><i>Logical and Relational Learning</i></a></span>, Cognitive Technologies, Berlin, Heidelberg: Springer, p. 14, <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2008lrl..book.....D">2008lrl..book.....D</a>, <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-68856-3">10.1007/978-3-540-68856-3</a>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-20040-6</bdi></cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite id="CITEREFMuggletonLinPahlaviTamaddoni-Nezhad2013" class="citation journal cs1">Muggleton, Stephen H.; Lin, Dianhuan; Pahlavi, Niels; Tamaddoni-Nezhad, Alireza (2013-05-01). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.1007/s10994-013-5358-3">"Meta-interpretive learning: application to grammatical inference"</a></span>. <i>Machine Learning</i>. <b>94</b> (1): <span class="nowrap">25–</span>49. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10994-013-5358-3">10.1007/s10994-013-5358-3</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0885-6125">0885-6125</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:254738603">254738603</a>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite id="CITEREFCropperDumančićEvansMuggleton2022" class="citation journal cs1">Cropper, Andrew; Dumančić, Sebastijan; Evans, Richard; Muggleton, Stephen (2022). <a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10994-021-06089-1">"Inductive logic programming at 30"</a>. <i>Machine Learning</i>. <b>111</b> (1): <span class="nowrap">147–</span>172. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10994-021-06089-1">10.1007/s10994-021-06089-1</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0885-6125">0885-6125</a>.</cite></span>
</li>
<li id="cite_note-setting-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-setting_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-setting_16-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-setting_16-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-setting_16-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFCropperDumančić2022" class="citation journal cs1">Cropper, Andrew; Dumančić, Sebastijan (2022-06-15). <a rel="nofollow" class="external text" href="https://doi.org/10.1613%2Fjair.1.13507">"Inductive Logic Programming At 30: A New Introduction"</a>. <i>Journal of Artificial Intelligence Research</i>. <b>74</b>: <span class="nowrap">779–</span>782. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/2008.07912">2008.07912</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1613%2Fjair.1.13507">10.1613/jair.1.13507</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1076-9757">1076-9757</a>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite id="CITEREFDžeroski1996" class="citation book cs1">Džeroski, Sašo (1996). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210927141157/http://kt.ijs.si/SasoDzeroski/pdfs/1996/Chapters/1996_InductiveLogicProgramming.pdf">"Inductive Logic Programming and Knowledge Discovery in Databases"</a> <span class="cs1-format">(PDF)</span>. In Fayyad, U.M.; Piatetsky-Shapiro, G.; Smith, P.; Uthurusamy, R. (eds.). <i>Advances in Knowledge Discovery and Data Mining</i>. MIT Press. pp. 117–152 See §5.2.4. Archived from <a rel="nofollow" class="external text" href="http://kt.ijs.si/SasoDzeroski/pdfs/1996/Chapters/1996_InductiveLogicProgramming.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2021-09-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-09-27</span></span>.</cite></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite id="CITEREFDe_Raedt1997" class="citation journal cs1">De Raedt, Luc (1997). <a rel="nofollow" class="external text" href="https://linkinghub.elsevier.com/retrieve/pii/S0004370297000416">"Logical settings for concept-learning"</a>. <i>Artificial Intelligence</i>. <b>95</b> (1): <span class="nowrap">187–</span>201. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2FS0004-3702%2897%2900041-6">10.1016/S0004-3702(97)00041-6</a>.</cite></span>
</li>
<li id="cite_note-setting2-19"><span class="mw-cite-backlink">^ <a href="#cite_ref-setting2_19-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-setting2_19-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMuggleton1999" class="citation journal cs1">Muggleton, Stephen (1999). "Inductive Logic Programming: Issues, Results and the Challenge of Learning Language in Logic". <i>Artificial Intelligence</i>. <b>114</b> (<span class="nowrap">1–</span>2): <span class="nowrap">283–</span>296. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fs0004-3702%2899%2900067-3">10.1016/s0004-3702(99)00067-3</a>.</cite>; here: Sect.2.1</span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite id="CITEREFPlotkin1970" class="citation thesis cs1">Plotkin, G.D. (1970). <a rel="nofollow" class="external text" href="https://www.era.lib.ed.ac.uk/bitstream/handle/1842/6656/Plotkin1972.pdf"><i>Automatic Methods of Inductive Inference</i></a> <span class="cs1-format">(PDF)</span> (PhD). University of Edinburgh. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/1842%2F6656">1842/6656</a>.</cite></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><cite id="CITEREFNienhuys-ChengWolf1997" class="citation book cs1">Nienhuys-Cheng, Shan-hwei; Wolf, Ronald de (1997). <i>Foundations of inductive logic programming</i>. Lecture notes in computer science Lecture notes in artificial intelligence. Berlin Heidelberg: Springer. p. 255. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-62927-6</bdi>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite id="CITEREFNienhuys-ChengWolf1997" class="citation book cs1">Nienhuys-Cheng, Shan-hwei; Wolf, Ronald de (1997). <i>Foundations of inductive logic programming</i>. Lecture notes in computer science Lecture notes in artificial intelligence. Berlin Heidelberg: Springer. p. 286. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-62927-6</bdi>.</cite></span>
</li>
<li id="cite_note-invres-23"><span class="mw-cite-backlink">^ <a href="#cite_ref-invres_23-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-invres_23-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFNienhuys-ChengWolf1997" class="citation book cs1">Nienhuys-Cheng, Shan-hwei; Wolf, Ronald de (1997). <i>Foundations of inductive logic programming</i>. Lecture notes in computer science Lecture notes in artificial intelligence. Berlin Heidelberg: Springer. p. 197. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-62927-6</bdi>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite id="CITEREFRayBrodaRusso2003" class="citation book cs1">Ray, O.; Broda, K.; Russo, A.M. (2003). <a rel="nofollow" class="external text" href="https://link.springer.com/chapter/10.1007/978-3-540-39917-9_21">"Hybrid abductive inductive learning"</a>. <i>Proceedings of the 13th international conference on inductive logic programming</i>. LNCS. Vol. 2835. Springer. pp. <span class="nowrap">311–</span>328. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.212.6602">10.1.1.212.6602</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-39917-9_21">10.1007/978-3-540-39917-9_21</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-39917-9</bdi>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite id="CITEREFKimberBrodaRusso2009" class="citation book cs1">Kimber, T.; Broda, K.; Russo, A. (2009). <a rel="nofollow" class="external text" href="https://link.springer.com/chapter/10.1007/978-3-642-04238-6_16">"Induction on failure: learning connected Horn theories"</a>. <i>Proceedings of the 10th international conference on logic programing and nonmonotonic reasoning</i>. LNCS. Vol. 575. Springer. pp. <span class="nowrap">169–</span>181. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-642-04238-6_16">10.1007/978-3-642-04238-6_16</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-642-04238-6</bdi>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite id="CITEREFYamamotoInoueIwanuma2012" class="citation journal cs1">Yamamoto, Yoshitaka; Inoue, Katsumi; Iwanuma, Koji (2012). <a rel="nofollow" class="external text" href="https://link.springer.com/content/pdf/10.1007/s10994-011-5250-y.pdf">"Inverse subsumption for complete explanatory induction"</a> <span class="cs1-format">(PDF)</span>. <i>Machine Learning</i>. <b>86</b>: <span class="nowrap">115–</span>139. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10994-011-5250-y">10.1007/s10994-011-5250-y</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:11347607">11347607</a>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite id="CITEREFYamamoto1997" class="citation book cs1">Yamamoto, Akihiro (1997). <a rel="nofollow" class="external text" href="https://link.springer.com/chapter/10.1007/3540635149_58">"Which hypotheses can be found with inverse entailment?"</a>. <i>International Conference on Inductive Logic Programming</i>. Lecture Notes in Computer Science. Vol. 1297. Springer. pp. <span class="nowrap">296–</span>308. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.2975">10.1.1.54.2975</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F3540635149_58">10.1007/3540635149_58</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-69587-5</bdi>.</cite></span>
</li>
<li id="cite_note-kimber2009induction-28"><span class="mw-cite-backlink">^ <a href="#cite_ref-kimber2009induction_28-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-kimber2009induction_28-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFKimber2012" class="citation thesis cs1">Kimber, Timothy (2012). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20221021035457/https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.560694"><i>Learning definite and normal logic programs by induction on failure</i></a> (PhD). Imperial College London. ethos 560694. Archived from <a rel="nofollow" class="external text" href="https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.560694">the original</a> on 2022-10-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-10-21</span></span>.</cite></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite id="CITEREFToth2014" class="citation arxiv cs1">Toth, David (2014). "Imparo is complete by inverse subsumption". <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1407.3836">1407.3836</a></span> [<a rel="nofollow" class="external text" href="https://arxiv.org/archive/cs.AI">cs.AI</a>].</cite></span>
</li>
<li id="cite_note-:0-30"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_30-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_30-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFCropperDumančić2022" class="citation journal cs1">Cropper, Andrew; Dumančić, Sebastijan (2022-06-15). <a rel="nofollow" class="external text" href="https://doi.org/10.1613%2Fjair.1.13507">"Inductive Logic Programming At 30: A New Introduction"</a>. <i>Journal of Artificial Intelligence Research</i>. <b>74</b>: 795. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/2008.07912">2008.07912</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1613%2Fjair.1.13507">10.1613/jair.1.13507</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1076-9757">1076-9757</a>.</cite></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite id="CITEREFHeindorfBlübaumDüsterhusWerner2022" class="citation conference cs1">Heindorf, Stefan; Blübaum, Lukas; Düsterhus, Nick; Werner, Till; Golani, Varun Nandkumar; Demir, Caglar; Ngonga Ngomo, Axel-Cyrille (2022). <i>EvoLearner: Learning Description Logics with Evolutionary Algorithms</i>. WWW. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/2111.04879">2111.04879</a></span>.</cite></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite id="CITEREFMuggletonSantosTamaddoni-Nezhad2009" class="citation book cs1">Muggleton, Stephen; Santos, Jose; Tamaddoni-Nezhad, Alireza (2009). <a rel="nofollow" class="external text" href="https://link.springer.com/chapter/10.1007/978-3-642-13840-9_13">"ProGolem: a system based on relative minimal generalization"</a>. <i>International Conference on Inductive Logic Programming</i>. Springer. pp. <span class="nowrap">131–</span>148. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.297.7992">10.1.1.297.7992</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-642-13840-9_13">10.1007/978-3-642-13840-9_13</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-642-13840-9</bdi>.</cite></span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><cite id="CITEREFSantosNassifPageMuggleton2012" class="citation journal cs1">Santos, Jose; Nassif, Houssam; Page, David; Muggleton, Stephen; Sternberg, Mike (2012). <a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3458898">"Automated identification of features of protein-ligand interactions using Inductive Logic Programming: a hexose binding case study"</a>. <i>BMC Bioinformatics</i>. <b>13</b>: 162. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1186%2F1471-2105-13-162">10.1186/1471-2105-13-162</a></span>. <a href="PMC_(identifier)" class="mw-redirect" title="PMC (identifier)">PMC</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3458898">3458898</a></span>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a> <a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/22783946">22783946</a>.</cite></span>
</li>
<li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><cite id="CITEREFDe_RaedtKersting2008" class="citation cs2">De Raedt, Luc; Kersting, Kristian (2008), <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.1007/978-3-540-78652-8_1"><i>Probabilistic Inductive Logic Programming</i></a></span>, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. <span class="nowrap">1–</span>27, <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-78652-8_1">10.1007/978-3-540-78652-8_1</a>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-78651-1</bdi><span class="reference-accessdate">, retrieved <span class="nowrap">2023-12-09</span></span></cite></span>
</li>
<li id="cite_note-pilp-35"><span class="mw-cite-backlink">^ <a href="#cite_ref-pilp_35-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-pilp_35-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-pilp_35-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-pilp_35-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-pilp_35-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-pilp_35-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-pilp_35-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-pilp_35-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-pilp_35-8"><sup><i><b>i</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFRiguzziBellodiZese2014" class="citation journal cs1">Riguzzi, Fabrizio; Bellodi, Elena; Zese, Riccardo (2014-09-18). <a rel="nofollow" class="external text" href="https://doi.org/10.3389%2Ffrobt.2014.00006">"A History of Probabilistic Inductive Logic Programming"</a>. <i>Frontiers in Robotics and AI</i>. <b>1</b>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.3389%2Ffrobt.2014.00006">10.3389/frobt.2014.00006</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/2296-9144">2296-9144</a>.</cite></span>
</li>
<li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text"><cite id="CITEREFKollerPfeffer1997" class="citation conference cs1">Koller, Daphne; Pfeffer, Avi (August 1997). <a rel="nofollow" class="external text" href="http://www.robotics.stanford.edu/~koller/Papers/Koller+Pfeffer:IJCAI97.pdf"><i>Learning probabilities for noisy first-order rules</i></a> <span class="cs1-format">(PDF)</span>. <a href="IJCAI" class="mw-redirect" title="IJCAI">IJCAI</a>.</cite></span>
</li>
<li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><cite id="CITEREFDe_RaedtKerstingKimmigRevoredo2008" class="citation journal cs1">De Raedt, L.; Kersting, K.; Kimmig, A.; Revoredo, K.; Toivonen, H. (March 2008). <a rel="nofollow" class="external text" href="http://link.springer.com/10.1007/s10994-007-5030-x">"Compressing probabilistic Prolog programs"</a>. <i>Machine Learning</i>. <b>70</b> (<span class="nowrap">2–</span>3): <span class="nowrap">151–</span>168. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10994-007-5030-x">10.1007/s10994-007-5030-x</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/10138%2F143971">10138/143971</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0885-6125">0885-6125</a>.</cite></span>
</li>
<li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><cite id="CITEREFBlockeelMeert2007" class="citation cs2">Blockeel, Hendrik; Meert, Wannes (2007), <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.1007/978-3-540-73847-3_16">"Towards Learning Non-recursive LPADs by Transforming Them into Bayesian Networks"</a></span>, <i>Inductive Logic Programming</i>, Lecture Notes in Computer Science, vol. 4455, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. <span class="nowrap">94–</span>108, <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-73847-3_16">10.1007/978-3-540-73847-3_16</a>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-73846-6</bdi><span class="reference-accessdate">, retrieved <span class="nowrap">2023-12-09</span></span></cite></span>
</li>
<li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><cite id="CITEREFDe_RaedtThon2011" class="citation cs2">De Raedt, Luc; Thon, Ingo (2011), Frasconi, Paolo; Lisi, Francesca A. (eds.), <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="http://link.springer.com/10.1007/978-3-642-21295-6_9">"Probabilistic Rule Learning"</a></span>, <i>Inductive Logic Programming</i>, vol. 6489, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. <span class="nowrap">47–</span>58, <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-642-21295-6_9">10.1007/978-3-642-21295-6_9</a>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-642-21294-9</bdi>, <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:11727522">11727522</a><span class="reference-accessdate">, retrieved <span class="nowrap">2023-12-09</span></span></cite></span>
</li>
<li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text"><cite id="CITEREFBellodiRiguzzi2012" class="citation cs2">Bellodi, Elena; Riguzzi, Fabrizio (2012), <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.1007/978-3-642-31951-8_10">"Learning the Structure of Probabilistic Logic Programs"</a></span>, <i>Inductive Logic Programming</i>, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. <span class="nowrap">61–</span>75, <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-642-31951-8_10">10.1007/978-3-642-31951-8_10</a>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-642-31950-1</bdi><span class="reference-accessdate">, retrieved <span class="nowrap">2023-12-09</span></span></cite></span>
</li>
<li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><cite id="CITEREFBellodiRiguzzi2014" class="citation journal cs1">Bellodi, Elena; Riguzzi, Fabrizio (2014-01-15). <a rel="nofollow" class="external text" href="https://dx.doi.org/10.1017/s1471068413000689">"Structure learning of probabilistic logic programs by searching the clause space"</a>. <i>Theory and Practice of Logic Programming</i>. <b>15</b> (2): <span class="nowrap">169–</span>212. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1309.2080">1309.2080</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1017%2Fs1471068413000689">10.1017/s1471068413000689</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1471-0684">1471-0684</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:17669522">17669522</a>.</cite></span>
</li>
</ol></div></div>
<p><span class="noviewer" typeof="mw:File"></span> This article incorporates text from a <a href="Free_content" title="Free content">free content</a> work. Licensed under CC-BY 4.0 (<a rel="nofollow" class="external text" href="http://creativecommons.org/licenses/by/4.0/">license statement/permission</a>). Text taken from <a rel="nofollow" class="external text" href="http://journal.frontiersin.org/article/10.3389/frobt.2014.00006/"><i>A History of Probabilistic Inductive Logic Programming</i></a>, Fabrizio Riguzzi, Elena Bellodi and Riccardo Zese, <a href="Frontiers_Media" title="Frontiers Media">Frontiers Media</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */
.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}
/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><cite id="CITEREFMuggletonDe_Raedt1994" class="citation journal cs1 cs1-prop-long-vol">Muggleton, S.; De Raedt, L. (1994). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0743-1066%2894%2990035-3">"Inductive Logic Programming: Theory and methods"</a>. <i>The Journal of Logic Programming</i>. <span class="nowrap">19–</span>20: <span class="nowrap">629–</span>679. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0743-1066%2894%2990035-3">10.1016/0743-1066(94)90035-3</a></span>.</cite></li>
<li><cite id="CITEREFLavracDzeroski1994" class="citation book cs1">Lavrac, N.; Dzeroski, S. (1994). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20040906084947/http://www-ai.ijs.si/SasoDzeroski/ILPBook/"><i>Inductive Logic Programming: Techniques and Applications</i></a>. New York: Ellis Horwood. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-13-457870-5</bdi>. Archived from <a rel="nofollow" class="external text" href="http://www-ai.ijs.si/SasoDzeroski/ILPBook/">the original</a> on 2004-09-06<span class="reference-accessdate">. Retrieved <span class="nowrap">2004-09-22</span></span>.</cite></li>
<li>Visual example of inducing the grandparenthood relation by the <a href="#Implementations">Atom system</a>. <a rel="nofollow" class="external free" href="http://john-ahlgren.blogspot.com/2014/03/inductive-reasoning-visualized.html">http://john-ahlgren.blogspot.com/2014/03/inductive-reasoning-visualized.html</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140326101408/http://john-ahlgren.blogspot.com/2014/03/inductive-reasoning-visualized.html">Archived</a> 2014-03-26 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li></ul>
</div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programming_paradigms_(Comparison_by_language)368" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Programming_paradigms_(Comparison_by_language)368" style="font-size:114%;margin:0 4em"><a href="Programming_paradigm" title="Programming paradigm">Programming paradigms</a> (<a href="Comparison_of_multi-paradigm_programming_languages" title="Comparison of multi-paradigm programming languages">Comparison by language</a>)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Imperative_programming" title="Imperative programming">Imperative</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Structured_programming" title="Structured programming">Structured</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Jackson_structured_programming" title="Jackson structured programming">Jackson structures</a></li>
<li><a href="Block_(programming)" title="Block (programming)">Block-structured</a></li>
<li><a href="Modular_programming" title="Modular programming">Modular</a></li>
<li><a href="Non-structured_programming" title="Non-structured programming">Non-structured</a></li>
<li><a href="Procedural_programming" title="Procedural programming">Procedural</a></li>
<li><a href="Programming_in_the_large_and_programming_in_the_small" title="Programming in the large and programming in the small">Programming in the large and in the small</a></li>
<li><a href="Design_by_contract" title="Design by contract">Design by contract</a></li>
<li><a href="Invariant-based_programming" title="Invariant-based programming">Invariant-based</a></li>
<li><a href="Nested_function" title="Nested function">Nested function</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object-oriented_programming" title="Object-oriented programming">Object-oriented</a><br>(<a href="Comparison_of_programming_languages_(object-oriented_programming)" title="Comparison of programming languages (object-oriented programming)">comparison</a>, <a href="List_of_object-oriented_programming_languages" title="List of object-oriented programming languages">list</a>)</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Class-based_programming" title="Class-based programming">Class-based</a>, <a href="Prototype-based_programming" title="Prototype-based programming">Prototype-based</a>, <a href="Object-based_language" title="Object-based language">Object-based</a></li>
<li><a href="Agent-oriented_programming" title="Agent-oriented programming">Agent</a></li>
<li><a href="Immutable_object" title="Immutable object">Immutable object</a></li>
<li><a href="Persistent_programming_language" title="Persistent programming language">Persistent</a></li>
<li><a href="Uniform_function_call_syntax" title="Uniform function call syntax">Uniform function call syntax</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Declarative_programming" title="Declarative programming">Declarative</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Functional_programming" title="Functional programming">Functional</a><br>(<a href="Comparison_of_functional_programming_languages" title="Comparison of functional programming languages">comparison</a>)</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Recursion_(computer_science)" title="Recursion (computer science)">Recursive</a></li>
<li><a href="Anonymous_function" title="Anonymous function">Anonymous function</a> (<a href="Partial_application" title="Partial application">Partial application</a>)</li>
<li><a href="Higher-order_programming" title="Higher-order programming">Higher-order</a></li>
<li><a href="Purely_functional_programming" title="Purely functional programming">Purely functional</a></li>
<li><a href="Total_functional_programming" title="Total functional programming">Total</a></li>
<li><a href="Strict_programming_language" title="Strict programming language">Strict</a></li>
<li><a href="Generalized_algebraic_data_type" title="Generalized algebraic data type">GADTs</a></li>
<li><a href="Dependent_type" title="Dependent type">Dependent types</a></li>
<li><a href="Functional_logic_programming" title="Functional logic programming">Functional logic</a></li>
<li><a href="Tacit_programming" title="Tacit programming">Point-free style</a></li>
<li><a href="Expression-oriented_programming_language" title="Expression-oriented programming language">Expression-oriented</a></li>
<li><a href="Applicative_programming_language" title="Applicative programming language">Applicative</a>, <a href="Concatenative_programming_language" title="Concatenative programming language">Concatenative</a></li>
<li><a href="Function-level_programming" title="Function-level programming">Function-level</a>, <a href="Value-level_programming" title="Value-level programming">Value-level</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Dataflow_programming" title="Dataflow programming">Dataflow</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Flow-based_programming" title="Flow-based programming">Flow-based</a></li>
<li><a href="Reactive_programming" title="Reactive programming">Reactive</a> (<a href="Functional_reactive_programming" title="Functional reactive programming">Functional reactive</a>)</li>
<li><a href="Signal_programming" class="mw-redirect" title="Signal programming">Signals</a></li>
<li><a href="Stream_processing" title="Stream processing">Streams</a></li>
<li><a href="Synchronous_programming_language" title="Synchronous programming language">Synchronous</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Logic_programming" title="Logic programming">Logic</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Abductive_logic_programming" title="Abductive logic programming">Abductive logic</a></li>
<li><a href="Answer_set_programming" title="Answer set programming">Answer set</a></li>
<li><a href="Constraint_programming" title="Constraint programming">Constraint</a> (<a href="Constraint_logic_programming" title="Constraint logic programming">Constraint logic</a>)</li>
<li><a href="Nondeterministic_programming" title="Nondeterministic programming">Nondeterministic</a></li>
<li><a href="Ontology_language" title="Ontology language">Ontology</a></li>
<li><a href="Probabilistic_logic_programming" title="Probabilistic logic programming">Probabilistic logic</a></li>
<li><a href="Query_language" title="Query language">Query</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Domain-specific_language" title="Domain-specific language">DSL</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Algebraic_modeling_language" title="Algebraic modeling language">Algebraic modeling</a></li>
<li><a href="Array_programming" title="Array programming">Array</a></li>
<li><a href="Automata-based_programming" title="Automata-based programming">Automata-based</a> (<a href="Action_language" title="Action language">Action</a>)</li>
<li><a href="Command_language" title="Command language">Command</a> (<a href="Spacecraft_command_language" title="Spacecraft command language">Spacecraft</a>)</li>
<li><a href="Differentiable_programming" title="Differentiable programming">Differentiable</a></li>
<li><a href="End-user_development" title="End-user development">End-user</a></li>
<li><a href="Grammar-oriented_programming" title="Grammar-oriented programming">Grammar-oriented</a></li>
<li><a href="Interface_description_language" title="Interface description language">Interface description</a></li>
<li><a href="Language-oriented_programming" title="Language-oriented programming">Language-oriented</a></li>
<li><a href="List_comprehension" title="List comprehension">List comprehension</a></li>
<li><a href="Low-code_development_platform" title="Low-code development platform">Low-code</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling</a></li>
<li><a href="Natural-language_programming" class="mw-redirect" title="Natural-language programming">Natural language</a></li>
<li><a href="Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li>
<li><a href="Page_description_language" title="Page description language">Page description</a></li>
<li><a href="Pipeline_(software)" title="Pipeline (software)">Pipes</a> and <a href="Filter_(software)" title="Filter (software)">filters</a></li>
<li><a href="Probabilistic_programming" title="Probabilistic programming">Probabilistic</a></li>
<li><a href="Quantum_programming" title="Quantum programming">Quantum</a></li>
<li><a href="Scientific_programming_language" title="Scientific programming language">Scientific</a></li>
<li><a href="Scripting_language" title="Scripting language">Scripting</a></li>
<li><a href="Set_theoretic_programming" title="Set theoretic programming">Set-theoretic</a></li>
<li><a href="Simulation_language" title="Simulation language">Simulation</a></li>
<li><a href="Stack-oriented_programming" title="Stack-oriented programming">Stack-based</a></li>
<li><a href="System_programming_language" title="System programming language">System</a></li>
<li><a href="Tactile_programming_language" title="Tactile programming language">Tactile</a></li>
<li><a href="Template_processor" title="Template processor">Templating</a></li>
<li><a href="Transformation_language" title="Transformation language">Transformation</a> (<a href="Graph_rewriting" title="Graph rewriting">Graph rewriting</a>, <a href="Production_system_(computer_science)" title="Production system (computer science)">Production</a>, <a href="Pattern_matching" title="Pattern matching">Pattern</a>)</li>
<li><a href="Visual_programming_language" title="Visual programming language">Visual</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Concurrent_computing" title="Concurrent computing">Concurrent</a>,<br><a href="Distributed_computing" title="Distributed computing">distributed</a>,<br><a href="Parallel_computing" title="Parallel computing">parallel</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Actor_model" title="Actor model">Actor-based</a></li>
<li><a href="Automatic_mutual_exclusion" title="Automatic mutual exclusion">Automatic mutual exclusion</a></li>
<li><a href="Choreographic_programming" title="Choreographic programming">Choreographic programming</a></li>
<li><a href="Concurrent_logic_programming" title="Concurrent logic programming">Concurrent logic</a> (<a href="Concurrent_constraint_logic_programming" title="Concurrent constraint logic programming">Concurrent constraint logic</a>)</li>
<li><a href="Concurrent_object-oriented_programming" title="Concurrent object-oriented programming">Concurrent OO</a></li>
<li><a href="Macroprogramming" title="Macroprogramming">Macroprogramming</a></li>
<li><a href="Multitier_programming" title="Multitier programming">Multitier programming</a></li>
<li><a href="Organic_computing" title="Organic computing">Organic computing</a></li>
<li><a href="Parallel_programming_model" title="Parallel programming model">Parallel programming models</a></li>
<li><a href="Partitioned_global_address_space" title="Partitioned global address space">Partitioned global address space</a></li>
<li><a href="Process-oriented_programming" title="Process-oriented programming">Process-oriented</a></li>
<li><a href="Relativistic_programming" title="Relativistic programming">Relativistic programming</a></li>
<li><a href="Service-oriented_programming" title="Service-oriented programming">Service-oriented</a></li>
<li><a href="Structured_concurrency" title="Structured concurrency">Structured concurrency</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Metaprogramming" title="Metaprogramming">Metaprogramming</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Attribute-oriented_programming" title="Attribute-oriented programming">Attribute-oriented</a></li>
<li><a href="Automatic_programming" title="Automatic programming">Automatic</a> (<a href="Inductive_programming" title="Inductive programming">Inductive</a>)</li>
<li><a href="Dynamic_programming_language" title="Dynamic programming language">Dynamic</a></li>
<li><a href="Extensible_programming" title="Extensible programming">Extensible</a></li>
<li><a href="Generic_programming" title="Generic programming">Generic</a></li>
<li><a href="Homoiconicity" title="Homoiconicity">Homoiconicity</a></li>
<li><a href="Interactive_programming" title="Interactive programming">Interactive</a></li>
<li><a href="Macro_(computer_science)" title="Macro (computer science)">Macro</a> (<a href="Hygienic_macro" title="Hygienic macro">Hygienic</a>)</li>
<li><a href="Metalinguistic_abstraction" title="Metalinguistic abstraction">Metalinguistic abstraction</a></li>
<li><a href="Multi-stage_programming" title="Multi-stage programming">Multi-stage</a></li>
<li><a href="Program_synthesis" title="Program synthesis">Program synthesis</a> (<a href="Bayesian_program_synthesis" title="Bayesian program synthesis">Bayesian</a>, <a href="Inferential_programming" title="Inferential programming">Inferential</a>, <a href="Programming_by_demonstration" title="Programming by demonstration">by demonstration</a>, <a href="Programming_by_example" title="Programming by example">by example</a>)</li>
<li><a href="Reflective_programming" title="Reflective programming">Reflective</a></li>
<li><a href="Self-modifying_code" title="Self-modifying code">Self-modifying code</a></li>
<li><a href="Symbolic_programming" title="Symbolic programming">Symbolic</a></li>
<li><a href="Template_metaprogramming" title="Template metaprogramming">Template</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Separation_of_concerns" title="Separation of concerns">Separation<br>of concerns</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Aspect-oriented_programming" title="Aspect-oriented programming">Aspects</a></li>
<li><a href="Component-based_software_engineering" title="Component-based software engineering">Components</a></li>
<li><a href="Data-driven_programming" title="Data-driven programming">Data-driven</a></li>
<li><a href="Data-oriented_design" title="Data-oriented design">Data-oriented</a></li>
<li><a href="Event-driven_programming" title="Event-driven programming">Event-driven</a></li>
<li><a href="Feature-oriented_programming" title="Feature-oriented programming">Features</a></li>
<li><a href="Literate_programming" title="Literate programming">Literate</a></li>
<li><a href="Role-oriented_programming" title="Role-oriented programming">Roles</a></li>
<li><a href="Subject-oriented_programming" title="Subject-oriented programming">Subjects</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-30" href="https://en.wikipedia.org/wiki/?title=Inductive_logic_programming&oldid=1298044936">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>